package ch.ms.persistenttimers.actions;

import org.w3c.dom.Node;
import org.xmlpull.v1.XmlSerializer;

import ch.ms.persistenttimers.PersistentTimer;
import ch.ms.persistenttimers.persistence.ISerializableTimerAction;

/*
 * Copyright 2011 dunhill

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
 */

public class MockupCounterTickAction extends AbstractTimerAction implements ISerializableTimerAction {

	private long count = 0;
	
	@Override
	public void call(PersistentTimer timer) {
		// WE INCREASE COUNT
		this.count++;
		System.out.println("COUNT: " + count + " timer id " + timer.getData().getId());
	}

	public long getCount() {
		return count;
	}

	public void setCount(long count) {
		this.count = count;
	}

	@Override
	public void serialize(XmlSerializer serializer) throws Exception {
		serializer.text(""+count);
	}
	
	@Override 
	public void deserialize(Node node) throws Exception {	
		String countText = node.getTextContent();
		long count = Long.parseLong(countText);
		this.count = count;
	}
	
}